# Paquete para manipulación de datos
library(dplyr)
# Paquete para manejo de datos vectoriales
library(sf)
# Paquetes para manejo de datos raster
library(terra)
library(raster)
# Paquete para mapas interactivos
library(leaflet)
library(DT)
library(plotly)
# Datos vectoriales
# Métodos de la clase sf
methods(class = "sf")
## [1] $<- [ [[<-
## [4] aggregate anti_join arrange
## [7] as.data.frame cbind coerce
## [10] dbDataType dbWriteTable distinct
## [13] dplyr_reconstruct ext extent
## [16] extract filter full_join
## [19] group_by group_split identify
## [22] initialize inner_join left_join
## [25] mask merge mutate
## [28] plot print raster
## [31] rasterize rbind rename
## [34] right_join rowwise sample_frac
## [37] sample_n select semi_join
## [40] show slice slotsFromS3
## [43] st_agr st_agr<- st_area
## [46] st_as_s2 st_as_sf st_bbox
## [49] st_boundary st_buffer st_cast
## [52] st_centroid st_collection_extract st_convex_hull
## [55] st_coordinates st_crop st_crs
## [58] st_crs<- st_difference st_filter
## [61] st_geometry st_geometry<- st_inscribed_circle
## [64] st_interpolate_aw st_intersection st_intersects
## [67] st_is st_is_valid st_join
## [70] st_line_merge st_m_range st_make_valid
## [73] st_nearest_points st_node st_normalize
## [76] st_point_on_surface st_polygonize st_precision
## [79] st_reverse st_sample st_segmentize
## [82] st_set_precision st_shift_longitude st_simplify
## [85] st_snap st_sym_difference st_transform
## [88] st_triangulate st_union st_voronoi
## [91] st_wrap_dateline st_write st_z_range
## [94] st_zm summarise transform
## [97] transmute ungroup vect
## see '?methods' for accessing help and source code
# Lectura de una capa vectorial (GeoJSON) de provincias de Costa Rica
provincias <-
st_read(
"https://github.com/tpb728O-programaciongeoespacialr/2021ii/raw/main/datos/ign/delimitacion-territorial-administrativa/provincias.geojson",
quiet = TRUE
)
# Lectura de un archivo CSV con registros de presencia de felinos en Costa Rica
felidae <-
st_read(
"/vsicurl/https://raw.githubusercontent.com/tpb728O-programaciongeoespacialr/2021ii/main/datos/gbif/felidae.csv",
options = c(
"X_POSSIBLE_NAMES=decimalLongitude",
"Y_POSSIBLE_NAMES=decimalLatitude"
),
quiet = TRUE
)
#ASIGNACION DE SISTEMA DE COORDENADAS
# Asignación de un CRS al objeto felidae
st_crs(felidae) <- 4326
# Transformación del CRS del objeto provincias
provincias <-
provincias %>%
st_transform(4326)
st_crs(provincias)
## Coordinate Reference System:
## User input: EPSG:4326
## wkt:
## GEOGCRS["WGS 84",
## DATUM["World Geodetic System 1984",
## ELLIPSOID["WGS 84",6378137,298.257223563,
## LENGTHUNIT["metre",1]]],
## PRIMEM["Greenwich",0,
## ANGLEUNIT["degree",0.0174532925199433]],
## CS[ellipsoidal,2],
## AXIS["geodetic latitude (Lat)",north,
## ORDER[1],
## ANGLEUNIT["degree",0.0174532925199433]],
## AXIS["geodetic longitude (Lon)",east,
## ORDER[2],
## ANGLEUNIT["degree",0.0174532925199433]],
## USAGE[
## SCOPE["Horizontal component of 3D system."],
## AREA["World."],
## BBOX[-90,-180,90,180]],
## ID["EPSG",4326]]
# Lectura de una capa raster de altitud
altitud <-
rast(
"/vsicurl/https://raw.githubusercontent.com/tpb728O-programaciongeoespacialr/2021ii/master/datos/worldclim/altitud.tif"
)
felidae %>%
st_drop_geometry() %>%
dplyr::select(scientificName, stateProvince, locality, eventDate) %>%
datatable()
#Graficos
felidae %>%
st_drop_geometry() %>%
group_by(mes = format(as.Date(eventDate, "%Y-%m-%d"), "%m")) %>%
summarize(suma_registros = n()) %>%
filter(!is.na(mes)) %>%
plot_ly(x = ~ mes,
y = ~ suma_registros,
type="scatter", mode="markers", fill = "tozeroy", fillcolor = "green") %>%
layout(title = "Estacionalidad",
xaxis = list(title = "Mes"),
yaxis = list(title = "Cantidad de registros"))
#Graficos-Historicos
felidae %>%
st_drop_geometry() %>%
group_by(anio = format(as.Date(eventDate, "%Y-%m-%d"), "%Y")) %>%
summarize(suma_registros = n()) %>%
filter(!is.na(anio)) %>%
filter(anio >= 2011) %>%
plot_ly(x = ~ anio,
y = ~ suma_registros,
type="bar", color = I("green")) %>%
layout(title = "Historial",
xaxis = list(title = "Año"),
yaxis = list(title = "Cantidad de registros"))
#Raster
# Conversión del objeto altitud a la clase RasterLayer
altitud_rl <- raster::raster(altitud)
# Mapa leaflet básico con capas de provincias y registros de presencia de felinos
leaflet() %>%
addTiles() %>%
addRasterImage(
altitud_rl,
opacity = 0.6
) %>%
addPolygons(
data = provincias,
color = "black",
fillColor = "transparent",
stroke = TRUE,
weight = 1.0,
) %>%
addCircleMarkers(
data = felidae,
stroke = F,
radius = 4,
fillColor = 'orange',
fillOpacity = 1
)
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO", prefer_proj =
## prefer_proj): Discarded ellps WGS 84 in Proj4 definition: +proj=merc +a=6378137
## +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null
## +wktext +no_defs +type=crs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO", prefer_proj =
## prefer_proj): Discarded datum World Geodetic System 1984 in Proj4 definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO", prefer_proj =
## prefer_proj): Discarded ellps WGS 84 in Proj4 definition: +proj=merc +a=6378137
## +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null
## +wktext +no_defs +type=crs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO", prefer_proj =
## prefer_proj): Discarded datum World Geodetic System 1984 in Proj4 definition